package app.web.admin.domain.ao;

import app.config.Config;
import com.gitee.feizns.dynamic.bean.Convertible;
import com.gitee.feizns.quickstart.validation.Verifiable;
import com.gitee.feizns.quickstart.web.decrypt.DecryptionAlgorithm;
import lombok.Data;
import org.hibernate.validator.constraints.URL;

import javax.validation.constraints.Email;
import java.util.List;


/**
 * 管理员根据编号修改请求参数
 * @author feizns
 * @since 2025-04-09
 */
@Data
public class UserPatchByIdAo implements Convertible, Verifiable {

    /**
     * 用户名称
     */
    private String name;

    /**
     * 头像
     */
    @URL(message = "头像格式不合法.")
    private String avatar;
    /**
     * 职位
     */
    private String title;

    /**
     * 邮箱
     */
    @Email(message = "邮箱格式不合法.")
    private String email;

    /**
     * 密码（加密开启后需加密修改）
     */
    private String password;

    /**
     * 角色编号列表
     */
    private List<Long> roleIds;

    @Override
    public boolean validate() {
        // 密码解密
        if ( Config.rsaAutomaticDecryption() )
            this.password = DecryptionAlgorithm.instance().decrypt(password);
        return Verifiable.super.validate();
    }

}
